perm filename DMUSE[1,RWF] blob sn#320903 filedate 1977-12-07 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00021 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00004 00002	     This is the file DMUSE[INF,CSD] at the Stanford AI Lab (SU-AI).  This
C00009 00003	General remarks (come back later if this seems confusing).
C00012 00004	PAGE changing commands.
C00016 00005	how to EXIT and how to ENTER a file.
C00019 00006	WINDOW and ARROW moving cammands.
C00031 00007	EDITING.  The LINE-EDITOR and how to add text.
C00037 00008	Simple line-editing commands.
C00043 00009	More editing commands.  Insertions and deletions.  αβ<CR>  αI  α<cr>  αβD
C00047 00010	PAGING. Introducing and deleting PAGE MARKS.  EXTEND commands.
C00051 00011	file switching commands.  α?  αH  αε αλ and α∃   File switches.
C00060 00012	Line marking. αβM and αM
C00063 00013	ATTACH and COPY.
C00068 00014	FIND commands. Single page, multipage and directory searches.
C00078 00015	Substitution commands.
C00081 00016	Text justification. αXJUST,αXJFILL αXSJFILL and αXJGET
C00091 00017	Margin fixing commands. αXALIGN<cr> αXCENTER<cr> αXINDENT<cr> α→ and α←
C00095 00018	Some other EXTEND commands.
C00101 00019	System commands to evoke E.
C00105 00020	Using E from a non-display (TTY).
C00115 00021	Summary.
C00117 ENDMK
C⊗;
     This is the file DMUSE[INF,CSD] at the Stanford AI Lab (SU-AI).  This
is a file intended to help you to learn the AI system.  We assume that you
are using a DataMedia terminal.  Much  of this document is directly  taken
from the file called  TEACH which was  intended to teach  the E editor  to
users of DataDisc terminals.  The file DMINT[INF,CSD] contains information
about the  DataMedia terminals  and some  basic information  about the  AI
system.  Since this file is intended to be used on-line, we will begin  by
learning to read files using E.

    You are now looking at page 2 of DMUSE (see top line with asterisks).
Page 1, the "directory" page, is automatically prepared by E.

    A line starting with !! is an instruction that you are to follow.

!!  Type the ↑L key to look at the next "window" of lines on this page.
	(The ↑L key is the top of five black keys to the left of the
	 regular part of the keyboard.  You can also type ↑L by holding down
	 the CTRL key while typing L.  The CTRL key is next to the
	 SHIFT key.)

ABREVIATIONS used in TEACH to characterize commands to E.

   α     means hold the "EDIT" key down while typing a character.
	 In other AI lab documentation, this will be represented as the
	 character "alpha" which is not available on DataMedias.
   β     means hold the "EDIT" key down while typing "NUL" and then 
	 release the "EDIT" key and type a character.  Similarly, this
	 will sometimes be represented as the character "beta".
   αβ    means hold the "EDIT" key down while typing "NUL" and then the
	 character.

!! 	Type ↑L again to get the next "window".

    ↑	 means hold down the "CTRL" key and type a character.
	(For those of you who are familiar with the DataDisc terminals,
	one must not confuse the DD's CON key (pronounced CONTROL) with
	the DM's CTRL key (also pronounced CONTROL).  The DD CON key is
	equivalent to the DM EDIT key.  The DD TOP key is very roughly
	equivalent to the DM CTRL key.  For those who only use DataMedias,
	you only need remember that α means EDIT and ↑ means CTRL.)
   <cr>    carriage RETURN key.			<lf>    LINE feed key.
   <tab>   TAB key.				<esc>   ESC key.
   <del>    DEL key.				<↑L> 	↑L key (or <CTRL>L)
   <↑K>    ↑K (i.e. hold "ctrl" and type K.)	<clear>	key above the ↑A key.
   CURRENT means the current line (normally with the blinking cursor somewhere.)

Typing <↑K> moves back to the previous "window".

!!  Type <↑K> to review above and then <↑L> to return. Play around!

     Most commands  are single  characters typed  while doing  one of  the
special actions as  specified by  α, β  or αβ  as defined  above.  When  a
number is shown in a command, this  is by way of example, and any  desired
decimal number may be used.

    Typing ordinary characters will cause you to enter the LINE-EDITOR and
can easily lead to the overwriting  of desirable text, so be careful.   If
you do make a mistake or get confused, type <esc> before you type a <cr>.

   !!    Type αP (pronounced EDIT P or ALPHA P) (hold EDIT down and type P).
		(Use this command to get to the next page.)
General remarks (come back later if this seems confusing).
Use ↑L and ↑K to read this page.  Use α2αp to return to page 2.

     E is a page oriented editor designed for use with a display terminal.
It brings one page of the text into core, as requested, and it displays  a
portion of this page as if through a window.  A blinking cursor marks  the
position in the text  where editing is to  occur.  Special commands  allow
you to go from page to page, to move the window up or down on the page and
to move the line pointer and cursor as desired.

    E does not make a separate disk  copy of the file being edited  unless
requested to do so by the use  of a special command (described later),  so
take care or you may damage a file, even one belonging to someone else.

    E achieves its speed (1) by using  the system line editor and by  only
changing the core copy of the text  on the completion of a line edit,  and
(2) by updating the disk copy of the page only on the completion of a page
edit (automatically effected by moving to another page).

    Always remember  that the  text  shown on  the  display may  not,  and
usually does not, mirror the true state of the actual text on the disk.

    E is best understood by recognizing  that it operates in a variety  of
different modes  and that  many commands  are appropiate  only to  certain
modes or, worse yet, that they  may mean quite different things  depending
upon the mode that E is in at the time that the command is given.

    The dominant mode is  the NORMAL mode.  This  allows for page,  window
and line-marker  movement  commands and  commands  which enter  the  other
modes.  You will first learn some normal-mode commands.

    !!   Type αP for the next page.  DO THIS NOW.

PAGE changing commands.

     Most page-changing commands are single characters typed with the EDIT
key held down.  They may take modifiers as shown below.  Examples:

   αP       Go to the next PAGE. (You have just done this).
   α-αP     Back up to the previous page. !! Try this and then return.

   α+α7αP   Go foreward 7 pages if possible, otherwise to the last page.
   α-α3αP   Go backward 3 pages if possible otherwise to the first page.

   α7αP     Go to page 7 if possible otherwise to the last page.

    !!  If you are sure  that you know these  commands, skip around a  bit
and come back  here by typing  α4αP.  Note  that the directory  on page  1
lists the first line of each page.

     Begin to pay attention to the header and trailer lines on the screen.
The header line contains the line number of the first line on the  screen,
the number  of  the  current page,  the  name  of the  current  file,  and
sometimes an indication of the state of the edit.  (This will be discussed
later.)  Also, asterisks will appear on the header line if the first  line
of the page  appears on  the screen.  Otherwise,  (that is,  if there  are
lines on the page above the top  line on the screen) the header line  will
contain dots instead of asterisks.  There are probably dots on the  header
line now.  Similarly,  the trailer  line will contain  asterisks when  the
last line of the page appears on the screen, and dots otherwise.  Also  on
the trailer line:  the CURRENT line  number, the total number of lines  on
the page, the CURRENT page number, the total number of pages in the  file,
and some information related  to the number of  characters on the  current
page.

    By this  time, you  will have  also observed  some rather  nonsensical
information below the trailer line which is,  in fact a record of some  of
the commands that you have been typing and some acknowledgements of  these
commands.  Form a practice  of watching this information  to be sure  that
your commands are properly acknowledged before you type too far ahead.  At
the moment about the  only thing to  observe is that  the <↑L> and  <↑K>
commands are echoed as bold-face l and bold-face k.

    This page has been made rather short so that you can see what  happens
under these conditions, so go to the next page to continue.

    !!  So type αP as you did earlier.


how to EXIT and how to ENTER a file.

     But maybe you have had enough for one session and would like to quit.
To quit, simply type αE , that is,  type the letter "E" with the EDIT  key
depressed.

     !!  If you  want to quit  now, do so,  otherwise finish reading  this
window and then type ↑L to look at the next window.

    If you want to  start a new file  say one named FOO,  you type to  the
system the command  CET FOO<cr>.  Having  created such a  file and  having
left it, you can, of course, reenter it by the command ET FOO<cr>.

    If you should get confused and try to create a new file with the  same
name as one that you  already have, the editor will  warn you of this  and
allow you to either correct your mistake  or, if you want, to replace  the
old file by a newly created one.

The commands that you have learned are:  (Remember what α means)

αP	Go to the next page.		α-αP	Go back a page.
α+α3αp	Go forward 3 pages.		α-α3αP	Go back 3 pages.
α7αP	Go to page 7.			α∞αP	Go to the last page.

<↑L>	Go to the next windowful.	<↑K>	Go back a windowful.

    !!  You need one of these now!  (Note that there are dots on trailer line.)

Other commands that you also know are:

αE	Terminate an editing session.

And the system commands:

CET BAZ		Create a new file "BAZ" (assuming you want such a file).
ET TEACH	RE-ENTER  the file named TEACH on your own area.

    Since this page was  only slightly longer than  a windowful, you  have
had the opportunity of observing that the command <↑L> only advances the
window enough to get to the end of the page.  If you try it again now  you
will also observe that it does not cross page boundaries.

!!  Type <↑L> several times and observe what happens to the arrow.

!!  Now try typing α<↑L> (i.e. "EDIT" ↑L.)

WINDOW and ARROW moving cammands.

   But first, are you sure that you read all of the previous page?
!! To make sure type α<↑K> to back up a windowful over the page boundary.

So two other useful commands are:

α<↑L>		Get a new windowful, crossing a page boundary if the old
		windowful is at the end of a page and if there is another
		page in the file.
α<↑K>		Back up a windowful, crossing a page boundary if the old
		windowful is at the beginning of a page  and  if there is
		an earlier page in the file.

     From now on, you should use the ↑L and ↑K commands whenever necessary
without being told every time.

Now a new subject,- that of ARROW moving.

    If you have been observing the blinking cursor, you will have  noted
that it has usually, but not always, pointed to the first or the last line
on the window.  This arrow points to the CURRENT line, i.e.  the line that
would be edited were you to enter the LINE-EDIT mode.  For convienence, we
will call this line the "arrow line".

    While in the NORMAL mode, as we  now are (or at least should be),  the
command <cr>, that is  hitting the "return" key,  will cause the arrow  to
move down a line and the command <del> will cause it to move up a line.

     Both of these commands  can take arguments  which are simply  decimal
numbers typed  ahead  of  the  command itself,  but  NOTE  CAREFULLY,  the
arguments MUST be typed  with the EDIT key  depressed, while the  commands
themselves, that is, the <return> or <del> are typed without control keys.

The following commands can then be added to our list:

<cr>	Move the arrow down a line.	<del>	Move the arrow up a line.
α4<cr>	Move the arrow down 4 lines.	α3<del>	Move the arrow up 3 lines.

To these we can also add:

α>	The same as α4<cr>.		α<	The same as α4<del>.
α2α>	Move the arrow down 8 lines.	α2α<	Move the arrow up 8 lines.

(Another comment on DataMedia representations follows.  You may skip this
comment if it is confusing, but then the next four commands won't make
sense.  The AI lab has a larger character set than normal.  They have
many more characters than can be displayed on DataMedias.  To compensate
the system displays "extra" characters in boldface.  So if you want to
type α you do so by typing ↑B.  This character is the same as the AI lab's
"alpha" character.  You should have a list of correspondences pasted on the
keyboard of your terminal.  For example, the character which the lab thinks is
"greater than or equal sign" will be displayed as ≥ and typed as ↑].  There are
three problem characters.  These are "beta", "equivalence", and "logical or"
in the lab's character set and β, ≡, and ∨ on DMs.  They are typed in strange
ways on DMs.  See the part labelled ** on one of the pieces pasted to your
keyboard.  If you don't have the paste-ons, see Carolyn Tajnai (CET).)

α≥	Move the arrow down half a windowful.
α≤	Move the arrow up half a windowful.

α∧	Move the arrow to the top of the window.
α∨	Move the arrow to the bottom of the window.

!!  It may be well to stop here and go through your repartee of commands.

    The rest of the commands on this page can be skipped upon early readings.
You probably want to go to the next page to continue.  Return and read this
section after you become fluent with the above commands.

    You will observe that  the arrow moving  commands will sometimes  also
move the window should this be necessary to prevent the arrow from leaving
the window.  When this  happens the window will  usually be positioned  so
that the arrow line will be at the middle of the window.

More window moving commands.

    Having moved the arrow to a line of interest you may wish to  position
the window without moving the arrow  with respect to the text.  There  are
several commands designed for this purpose.  The more useful ones are:

αJ	JUMP the window so that the arrow line will be at the top of the
	window.
α0αJ	Jump the window  so that the arrow line will be in the middle of
	the window.
α-αJ	Jump the window  so that the arrow line will be at the bottom of
	the window.

    Alternatively, you may want to see a few lines more at the top or  the
bottom of the window and you would prefer that the arrow not be moved with
respect to text but you are willing for this to happen if the arrow  would
otherwise go off the screen.  The commands to do this are:

αT	Show 4 more lines at the top of the window.
αB	Show 4 more lines at the bottom of the window.

    !!  Try  these  commands  now.   You  will  observe  their  action  is
inhibited when they are given near the page boundaries.

    When you start trying to actually edit  a file you will find that  you
will need just about all of the commands that have been described.

Line numbers and their use.

    E is not primarily a line-number oriented editor.  However, there  are
times when it is desirable to get to some specific line on a page, perhaps
you have tried to compile a program and the compiler has given you a  list
of errors in terms of the pages and lines on which they occur.

    Just as you can get to any page, say page 6, by typing α6αP , you  can
type α2α9αL  to get  to  line 29  on the  current  page.  The  command  αL
(without an argument) gets you to line 1 and the command α∞αL will get you
to the bottom row of asterisks at the end of the page.  Relative arguments
may also be used with the L  command, but you will find that the  commands
<cr>, <del>, α>, α<, α≥ and α≤ are usually much more convenient.

    Note that the  P command  without an  argument implies  the next  page
while the L command without an argument implies line 1.  These conventions
are arbitrary, but  once you  get used  to them  you will  find them  very
convenient.

The most useful line-number commands are:

αL	Go to line 1 on the page.  This is the fastest way to get to the
	start of the page.

α3α5αL	Go to line 35 on the page.

α∞αL	Go to one line beyond the end of the page.  The arrow will point
	to the row of asterisks.   This is the fastest way to get to the
	end of the page in a position to add more text.  The ∞ character
	corresponds to the AI lab's infinity character.  It is typed as
	↑N on DataMedias.

    E also  allows you  to move  directly to  any designated  line in  the
window, by means of the following commands.

α∧	Go to the first line of text in the current window.

α4α∧	Go to the 4th line of text from the top of the current window.

α∨	Go to the last line of text in the current window.

α3α∨	Go to the 3rd line of text from the bottom of the current window.

    !!  Try skipping around by asking  for specific lines by number.   You
will observe that the arrow will simply  move to the specified line if  it
is on the window.  If a shifting of the window is required, then the arrow
line will usually be in the middle of the window.

    It will pay to  become very conversant with  all of these commands  so
that you cam minimize the number of key strokes that you will need to  get
to any desired location in your text.  This will save your time,  minimize
the chances of error and greatly reduce the load on the system.

    You have already observed that the trailer line always tells the  line
number of the CURRENT line i.e. the  line to which the arrow is  pointing.
There is a special command αXLINCNT<cr> that causes E to supply some more
information about this line and about the current page.  !! Try it.
EDITING.  The LINE-EDITOR and how to add text.

   You enter the LINE-EDIT mode simply by starting to type.

     In other words, typing a character without the EDIT key, (almost  any
character key  except  for  certain non-printing  keys)  will  cause  that
character to appear  in the line  to which  the arrow is  pointing at  the
time.  If you are in  the NORMAL mode, when you  start to type, the  typed
character will overwrite the first character  in the line.  A cursor  will
appear under the first character in the line and also under that  position
in which the next  typed character will appear.   As you continue to  type
additional characters will be overwritten.

    Remember- If you make a mistake  or get confused, the safest thing  to
do is to  type <esc>  . If  you do  this, while  in the  line editor,  the
corrections that you have just made will go away.

Adding text at the bottom of the page.

    Perhaps the simplest thing to do is  to add text at the bottom of  the
page.  This  you can  do, 1)  by moving  the arrow  to the  bottom row  of
asterisks (which, of course, are  not in the text at  all) and then 2)  by
just typing.  (Do you remember the fastest way to get to get to the end of
the page?)

    Incidentally, do not  try to move  the arrow down  the page by  simply
typing a  lot of  <cr>'s.  This  forces ETV  to do  a lot  of extra  work,
increases the chance of  error, slows down the  response and loads up  the
system.  There are better ways and besides  it is always better to use  an
argument with any command that will accept one (and many do, besides those
specifically mentioned) than to  type the command as  many times as it  is
wanted.

    !!  So type something at the end of this page, limiting your typing to
a few words without a <cr>.

    You will observe that the asterisks  disappear to be replaced by  what
ever you type.

    !!  Now type a  <cr> which will terminate  your line of text  allowing
the asterisks to reappear below your new text.  If you look at the end  of
the header  line  you will  observe  that  the letter  "W"  has  appeared,
indicating that something  has been changed  on the page  that is not  yet
written out.

    !!  Since you may not want  to preserve this, your first attempt,  for
posterity, move the  cursor back to  your line and  type αβD.  Your  newly
typed line is gone beyond recall.

    Incidentally, if you  have been so  careless as to  type αβD when  the
arrow was pointing at a  line that was in  the original TEACH text, rather
than at your newly  created line, you  can get the  original text back  by
typing αXCANCEL.  This only works if  you have not saved the altered  page
(as you will  do when you  switch pages), and,  needless to say,  αXCANCEL
will cause all corrections  and additions, that you  may have made to  the
current page (not just to the current windowful), to go away.

    One word of caution,-  The LINE-EDITOR will  only handle lines  having
less than roughly 126 characters.  You will be warned when you reach  this
limit but it is possible to create lines tha cannot be subsequently edited
without first dividing  them.  Fortunately there  are other commands  that
are not so limited.

    !! Now go to the next page for more.

Simple line-editing commands.

    The line-editor is actually  a part of the  main operating system  and
when you are operating in this mode you are typing directly to the system.
The line editor has a whole set  of commands that you will need to  learn.
In this DMUSE manual  we will consider only  that subset of commands  that
you will have to know almost at once.  A more complete description can be
found in the regular E manual.

     Certain keys  are  called activation  characters.   These  activation
characters terminate the editing of the line and cause the resulting  line
to be returned to E.

Six almost essential line-editor commands that you will need to know are:

α<space>   Move the cursor  one character position  to the right  without
	   affecting the text.

α<del>     Move the cursor by one character position to the left, without
	   affecting the text.

<char>	   Overwrite the character, at the cursor position with the typed
	   character <char>, where <char> can be any normal character.

αD         Delete the character  at the cursor position,  moving the text
	   at the right of the deleted position by one character position
	   to the left to fill in the missing position. (Note: NOT  αβD.)
	   Note that this command,  if given at the  end of a line,  will
	   add the next line to the end  of the current one, but it  will
	   do this only if the resulting line will contain less than  126
	   characters.

αI	   Enter INSERT mode.  Normal characters are inserted into the line
	   at the current cursor position.  The rest of the line is shifted
	   to the right to make room for the new characters.  Any LINE-EDIT
	   command (e.g. α<space>) will terminate insert mode.

<cr>       Finish editing the line and return control to E, that is, back
	   to the normal  mode with  the arrow  moved to  the next  line.
	   (Note: <cr> behaves differently if you are in the LINE-INSERT
	   or INSERT modes, soon to be described.)

    Remember that the line corrections do not appear in the core image and
E has no knowledge of your line-editor corrections until you have typed an
activation character, (of which the <cr> is the most common).

    Furthermore, a corrected page  is not  transfered to  the disk  record
until you have switched  pages, or have issued  a specific request for the
page to be saved.  This has one nice side effect in that if you have  made
a grevious mistake in editing  a page you can  undo your errors by  simply
replacing the present core copy by the one that is still on the disk.

     As noted earlier,the command to  undo a page of unwanted  corrections
is αXCANCEL<cr> , where the "X" is typed with the EDIT key while the  word
CANCEL and the <cr> are typed without EDIT.

     The command to write out  a page is α. ,  that is, the character  "."
(period)  is  typed  with  the  EDIT  key  depressed.   This  command   is
unnecessary if you are switching to another page (or another file) but  it
is wise to use this command if you  ar stopping to do something for a  few
minutes or if you are going to try some global command that might mess  up
your page should you make a mistake.

    !!  To see how this all  works, try editing this paragraph, doing  all
sorts of things to it and when  you have messed it up most horribly,  then
try the αXCANCEL command.  The αXCANCEL command may take a little time  to
function (since it involves a disk reference) so do not be impatient.

More editing commands.  Insertions and deletions.  αβ<CR>  αI  α<cr>  αβD

INSERTIONS.

    There are two special modes that  make editing very much easier.   You
will need to know how to enter and how to leave these modes.

1) The LINE-INSERT mode is entered by the command αβ<cr> .

    Typing the  command αβ<cr>  causes E  to enter  a special  LINE-INSERT
mode, signalled to the user by the  appearance of an I on the top asterisk
line.

     When E is in  this mode, everything that  you type (again except  for
certain activation characters) will  simply be inserted  into the text  at
the position marked by the cursor.   Carriage returns will be accepted  as

such and you can type as much as you want, for all the world as if you you
were typing on a typewriter, with the added convience that the rest of the
text is always moved down to make room.  Most of the LINE-EDITOR  commands
are available  to  you  and  you  may move  the  cursor  around  and  make
corrections to the line that you are typing as desired.

     To leave the LINE-INSERT mode, you must type one of several  possible
commands, the simplest one being α<cr> . This causes you to leave the mode
with the cursor pointing to the last line of your insertion.  The  command
<esc> can also be used  to leave this mode,  but it does different  things
depending upon the  exact situation  at the time  that it  is given.   You
might experiment with this a bit.

2) The INSERT mode is an even simplier affair.

    This is entered from the LINE-EDIT mode by the command αI .

     Typing αI when in the LINE-EDIT mode causes everything that you  type
thereafter  until  the  next  line-edit  command  to  be  accepted  as  an
insertion.  To leave this mode and  still stay in the LINE-EDIT mode,  one
can, for example, type  α<space> or α<del>.  The  command α<cr> is  useful
for leaving this special mode AND the LINE-EDITOR at the same time.

DELETIONS.

    It is almost as important to be  able to delete text as to create  it,
as you will  find when you  misinterpret these instructions  and make  bad
mistakes.

    The command αβD ,if given while in the normal mode, causes the line at
the arrow to be deleted.  This command can take an argument specifying the
number of lines that are to be deleted, starting with the current one, but
take care, this is a very powerful command and you can easily delete  more
than you intend.

PAGING. Introducing and deleting PAGE MARKS.  EXTEND commands.

    Having added some text  to a file  you will want to  break it up  into
pages, and then occasionally you will want to combine two pages into one.

    It is good practice to limit the size of each page to something of the
order of 150 lines  and to start  each page with a  comment or title  line
that defines the material  on the page.  As  mentioned earlier, E keeps  a
directory, usually  on page  1,  which contains  the  first lines  of  all
subsequent pages,  and this  directory may  be used  by you  directly  and
through some search  commands, to  be described  later, to  help you  find
things that you may want to refer to in the file.

    The commands to  do these things  are similar to the αXCANCEL  command
that you learned earlier in that they  begin with the letter X typed  with
the EDIT key.  These are called EXTEND commands, so let's take time out to
learn something about these commands.

EXTEND commands.

    Since there are many more commands in E than there are letters, it  is
necessary to have some multi-letter commands.  Such commands are signalled
by the letter "X" which is typed with one or both of the control keys  and
then followed immediately with  the letters that make  up the name,  typed
without control keys.  There is a further complication , however, in  that
the name may be  shortened as long  as it does  not become ambiguous,  and
certain EXTEND commands may take arguments that follow the name and  these
must be separated from the name by a delimiter.

Two simple EXTEND commands that apply to paging are:

αXM<cr>    The command  to introduce a  page mark is  αXMARK<cr>.   This
	command is given with the arrow pointing to the line that is to be
	the first line on the new page.
	(This can be shortened as shown but cannot be shortened to MA !)

αXDEL<cr>   The command to join two pages, that is to DELETE a page-mark,
	is  αXDELETE<cr>, which can be shortened  as shown.  This command
	is given when the first  of the two pages  (or a portion of it) is
	being viewed. The arrow need not be at any particular place on the
	page.

file switching commands.  α?  αH  αε αλ and α∃   File switches.

    One of  the first  things that  you will  want to  do after  you  have
mastered the basic  elements of  editing will be  to switch  from file  to
file, both to read or edit another file and later to copy information from
one file into another.  E has some  special commands to make this easy  to
do.

    Perhaps the very first file you will need to reference is the expanded
version of the E manual that is  always available on the system.  The  two
commands that you will need for this purpose are α?  and αH.

α?     This command switches  you to a  special file E.ALS[UP,DOC].   The
	first time that you give this command you will find that page 2 of
	this file is displayed.  Page 2  lists information as to the  most
	recent modifications to  the editor  E.  You  can, however  switch
	from page  to  page, using  all  of  the page  and  window  moving
	commands as required, perhaps going to the directory page (page 1)
	to find  out the  number of  the  page that  concerns you  at  the
	moment.  After you  have once referenced  this file on  subsequent
	references (during any one editing  session) you will be  returned
	to that page and line where you were when you left this file.

    Incidentally, this method of  referencing the E  manual causes you  to
enter the file in what is called the READONLY mode.  You will find that  E
will not  let  you  change the  disk  copy  of this  file,  at  least  not
unintentionally.  Should you try to do this, E will ask you to confirm the
desired mode.  You  must then type  either READONLY  if it was  all a  big
mistake, or READWRITE, if you really want the changes to be made.

    Please do not change the E manual.   If you find a mistake in it,  let
ALS know.  Note that the α? command does not create a separate copy of the
E manual as  the command  HELP ETEACH  did for  the TEACH  file.  You  are
referencing the system copy of this file which others will also use.

αH     This command returns you to the last file that you were using.  So
	if you give this command while looking at the manual you will  get
	back to your former position in your (H for HOME) file.  (The  α?
	file is never considered to be the HOME file, however).

     !!  By way of practice, try switching to the α? file, locate the page
that first mentions αH,  and then return here  using the αH command.   You
will later learn a much simplier way to find the desired page in a file by
using the FIND command described on page 14.  Hint, look at the  directory
or at page 3.

Switching to other files.

     It is also very easy to switch to any other file by using one of  two
commands.  One simply types αε, that is  hold down both EDIT and CTRL  and
type F, followed by the name of  the file desired and a <cr>.  This  opens
the designated file in the so-called READ-WRITE mode, so that you can edit
the new file if you so desire.

     Should you wish only to reference this file, (and not to edit it) you
can use the αλ command instead of the αε command.  The file will be opened
in READ-ONLY mode.   It is  good practice  to always  use λ  instead of  ε
whenever this is sufficient and E will keep you from unwittingly  damaging
a file.

αεFOO<cr>  Switch to file FOO (assuming that you have previously creaated
	such a file) so that it is available for editing.

αλFOO<cr>  Switch to file FOO in the readonly mode.

    Certain switches  may  be used  with  these file  switching  commands.
These are single  letters, either with  an argument or  without, that  are
typed after the file name and before the terminating <cr>.  The fact  that
they are switches is signalled by starting  them with a slash (/), and  by
typing them without control bits.  The more useful of these are:

/C	Create a new file with this name.
/26P	Open the file at the start of page 26.
/34E	Open the file at the end of page 34.
/E	Open the file at the end of its last page.
/4P/45L Open the file with the arrow pointing at line 45 on page 4.

    Note that these same switches may be  used with the ET command to  the
system when entering E at  the start of an  editing session.  See page  18
for a more complete list of available switches.

    Once you have entered a file, (during any one editing session) E keeps
a record of the  file name and  your position in this  file and assigns  a
serial number to this information.  You need then only type this number as
a preceding argument to either αε or αλ ,without then being required  to
retype the name  of the  file.  You  must observe  the difference  between
these commands as  typed without an  argument, in which  case a  following
file name  must be  typed  terminated by  a <cr>  and  the case  where  an
argument is used in which case the symbol αε or αλ is the command and in
which a file  name and  the terminating  <cr> are  not to  be typed.   (As
always, the argument must be typed using the EDIT key).

    Actually E only keeps such records on  the last 8 files that you  have
referenced, but this is usually enough for any one editing session.

α∃     As a mnemonic  aid, E will  show you the  numbers that have  been
	assigned and the corresponding file names.  To see this, type  the
	command α∃ , that is the symbol ∃ (for "there exists") typed with
	the EDIT key.  The desired information will appear on  the
	3 lines at  the bottom of  the screen.  For  your last  referenced
	file, the serial  number in the  listing will be  replaced by  the
	letter H to show you that you need only type αH to go back to it.

Line marking. αβM and αM

    E provides the facility for marking up to 23 line locations in any one
file with a rapid way to return to these locations by using the  following
commands.  These marks are  preserved with file  switching during any  one
session and they  are still  available when  one returns  to a  previously
marked file.  They are also sticky with  respect to the text so that  they
still reference the speciific text line  to which they were assigned  even
when the line  numbers are changed  by the addition  or deletion of  other
lines ahead  of the  marked lines.   When  a marked  line is  deleted  its
assigned mark disappears.

αβM             Mark the arrow line, that  is, record the page number  and
		line number for the CURRENT arrow location,

αβ-αβM          Erase the MARK for the CURRENT arrow location.

αβ0αβM          Erase all marks in the file that is being edited.

αM              Go to the next MARK (cyclicly).

α2αM            Go the the second Mark from here.

α-αM           Go backward one mark (cyclicaly).

    !!  This might be a good time to review, so go back to page 2 and skim
through the file putting marks on those lines that you especially want  to
remember.  When you  have done  this, then go  through the  file again  by
using αM's to switch from  one marked line to  another.  If you feel  that
you would like to know more about  some aspect you might try switching  to
the E.ALS[UP,DOC]  file by  typing α?  to see  what it  the more  complete
manual has to say.   When you switch  back, by using  the αH command,  you
will find that your marks are still available.
ATTACH and COPY.

    The ATTACH and COPY commands permit blocks of lines or copies of  them
to be moved up and down  on the page, from page  to page and from file  to
file as desired.

     The text in any attachment is displayed in double intensity to remind
the user that an attachment has been  made.  Also an A will appear on  the
top asterisk line to signify  that the editor is  in ATTACH mode.  If  the
attachment contains 8  or fewer lines  they all show,  otherwise only  the
first 4 and  the last 3  lines are shown,  separated by a  dotted line  to
signal some  omissions  from the  screen  (but  of course,  not  from  the
attachment).

    Once an attachment has been effected,  it can be moved arround on  the
page, from page to  page and from  file by all of  the usual commands  for
moving the normal arrow.  When a final resting place has been located  the
command αE causes the attachment to be released.  You will find the  MARK
commands usefull for marking places to which you want to move text, before
you have  attached  the  desired lines.   In  this  way you  can  get  the
attachment moved to the  the desired location with  the minimum of  effort
and in the shortest possible  time.  You can mark  lines that you want  to
move but when marked lines are attached their marks are deleted.

Basic commands.

  αA     ATTACH the CURRENT line.
	 Note that the line has been assigned to a special attach buffer
	 although it is still shown on the screen in its original location.

  α3αA   ATTACH 3 lines starting with CURRENT.

  αC     COPY the CURRENT line and attach the copy.
	 Note that in this case a copy has been made and the old line is 
	 still in its original place.

  α4αC   COPY 4 lines starting with CURRENT and attach the copy.

  αE     Deposit the attached lines where displayed and Exit ATTACH mode.
	 Note:   this command has a different meaning when one is NOT in
	 the ATTACH mode (it then means EXIT from E). Don't stutter when
	 typing it. Give the system time to react.

  αβK    KILL the attached lines (they go away beyond recall) and exit
	 from the ATTACH mode. Note that αK does not work (for safety).

    Relative arguments may also be used to add or subtract lines from  the
end of an attachment.  See α? for more details.

    A word of warning, a hazard is  involved in moving lines from page  to
page, and from file to  file as the attachment can  be lost if the  system
should crash during the interval between  the attachment of the lines  and
the final updating of the page to  which they are moved.  This hazard  can
be avoided by copying the lines rather than attaching them and then  going
back and deleting the original copy.  This precaution is hardly  necessary
for a few lines of text and, of  course, it is unnecessary if the text  is
being only moved around on the same page.

    This is a good place to comment  on the RIPPLING report, that you  may
noticed in the scratch-pad lines at the bottom of the screen. This  notice
appears when a  major rearrangement  of the text  between records  becomes
necessary.

FIND commands. Single page, multipage and directory searches.

    E provides facilities for searching for desired strings of characters,
either delimited,  that is  as separate  words, or  undelimited.  We  will
explain only the simplest form of  such searches in this manual.  As  soon
as you have mastered these, you may want to refer to α?  to get the entire
story.

Single page searches.

    Single page FIND commands start searching at the CURRENT line, that is
at the line marked by the arrow, and search forward toward the end of  the
page.  When the desired string has been found, the arrow is moved to  line
in question.   If  the searched-for-string  is  not found,  this  fact  is
reported and the arrow is left in its original position.

The command αβFsmith<cr> searches for  the word "smith", that is,  for
this as a separate word, whether it is spelled with an initial capital  or
without, (but it nust be separated from the rest of the text by the  usual
word delimiters, spaces, tabs, punctuation marks etc.).

     Note that no space is used between the F and the start of the string,
and that the EDIT key IS used with the "F" (preceeded by "EDIT" "NUL") but
NOT with the characters of the string nor with the <cr>.

    If you want  to find  "smith" even  should it be  a part  of a  longer
sequence of letters, then you type αFsmith<cr> , that is you use only  the
EDIT key with the letter "F".

     One further complication:  Using a simple carriage return, to  signal
the end of the searched-for-string, leaves the cursor at the beginning  of
the line in which  the string is  found.  Often times  it is desirable  to
have the beginning  of the found  string marked as  well, particularly  if
there are more than one occurance  of the searched-for-string in a  single
line.  To effect  this, one  merely used the  EDIT key  with the  carriage
return.

αβFtheα<cr>    then  will find the next occurance  of the word "the" and
this will be signalled by the  cursor being left under the first  letter
of this word.  You will be in the LINE-EDITOR.

Repeat searches.

     Having found the first example of  some desired string, you can  find
the next example of this  same string by the  command αβ*.  Note that  this
command simply repeats  your previous find  request, whether delimited  or
not.  Caution, this command always repeats the last search command  given,
whether it be  the the single  page search  that has been  described or  a
multi-page search as will be described below.

     Similarly using only the EDIT key  with the repeat command, that  is,
typing α* will leave the cursor under  the start of the string for  repeat
searches.  Again, you will be in the LINE-EDITOR.

!!     Before going on it might be wise to practice these commands a few
times.

   !!  Move  the arrow to the  top of the  page and then search  for the
word "the".  Do  this several times both leaving the cursor at the start
of the line and leaving it under  the first letter of the string.   Note
that  one can  switch between  α* and  αβ* with  the wanted  results for
repeated FINDs.


Multi-page searches.

   Multipage searches are a bit more complicated in that you have to use
an EXTEND command.

   At the present time there is  but one command beginning with  the
   letter "F" so only the "F" needs to  be typed.  Never-the-less we
   must separate this letter from the string that follows by a space
   to prevent the string from being  taken as a part of the  command
   name.

The multipage search commands then are of the form:

αβXF Smith<cr>  Find a  delimited string "smith".
αXF Smith<cr>  Find the string regardless of surroundings.

   Note that the EDIT key is not used  with the F nor with the string
and that a space is required between the F and the string.

     As before one may use the EDIT key with the <cr> to cause the  cursor
to be positioned under the first character of the found string.

   The command  α* repeats the  last find request,  be it a  single page
search  or a  multi-page search.

   Multi-page searches may take some time for large files.  You are kept
informed as  to the progress of  the search by a  running display of the
number of the page that  is being searched. This information appears  to
the right on the header line.

   You may  interrupt a multi-page  search at  any time by  typing <esc>
followed by  the letter "I".  The search will continue to the end of the
page it is on and then terminate.

Directory searches.

   One final  form of search  is so useful  that it should  be described
here.  This command makes a search on the directory page (which contains
the first lines from all pages in the file) but then the referenced page
is displayed and the cursor is  positioned either at the first occurance
of the searched-for-string (which, of course, will be on the first line)
or at the second occurance of  this string.  One need not be  looking at
the directory to give this command.

The proper final character for these two forms of directory search are:

αP   Make the search over the directory page and then display
     the referenced page with the line pointer at the top line.

αβP  Make the search over the directory page and then display
     the referenced page with the line pointer at the second
     occurance of the referenced string (the first will be in
     the first line of the page).

Finding the Nth occurance.

The search can be for the first  occurance of the specified string
or for the n'th occurance.

   α3αFsmith<cr> Finds the 3rd occurance of SMITH.

If one only wants to know how many examples of the searched-for-string
there are in the document then one asks for an impossibly large number
and the search will be terminated without finding  the specified
occurance.  However, and this is cute, E obligingly reports the number
that it did find.  The symbol "∞" (here meaning 262142) may be used.

    !!  Find how many times the word "the" is used on this page.

Substitution commands.

   One frquently wishes to find all of the  occurrences of some string in
order  to change them to  something else, perhaps you  have misspelled a
name or you wish to rename some variable used in a program.

     Substitution commands begin as any normal search command except  that
one uses, as a special termination for the searched-for-string, the symbol
α\, that is a backslash which must  be typed with the EDIT key.  Then  one
follows this with the substitution string terminated by either a <cr> or a
α<cr> .

   The usual  conventions apply  to  the searched-for-string,  that  is,
capitalization is ignored but  the substitution string is made  with due
attention to  the case of the letters.   The searched-for-string itself,
(and not its  delimiters if  it is  a delimited search)  is removed  and
replaced by the substitution string,  which, of course, need not contain
the same number of characters.

   A  substitution may be made  for the first occurrence  only or for any
specified number.  A repeat command is available and it is good practice
to always make a single substitution first just to make sure that one is
making the desired substitution  and then to use  the repeat command  to
make the rest of the desired substitutions.

   The repeat command is αβ\ .  This can be preceeded by an
argument (typed with  the EDIT key) and the symbol "∞" (infinity) may be
used.  The αβ\ acts  as the command and no  further delimiter is used.

Text justification. αXJUST,αXJFILL αXSJFILL and αXJGET
	(These are EXTEND commands, see p. 10.)

    The margin justifying command αXJFILL  adjusts the lengths of  textual
lines by moving words from line to line as required to achieve any desired
maximum line length.  At the same time this command fixes the left  margin
at any  desired position  (both  for crown  lines,  i.e.  first  lines  of
paragraphs, and for normal text lines), and it either puts the same number
of blank  lines  at  each paragraph  break  as  in the  original  text  or
introduces any desired  number of  blank lines.  The  αXJUST command  also
pads the line  by distributing additional  spaces between words  so as  to
allign the right margin as well.

    The range  of  application of  these  commands  may be  limited  by  a
prefixed decimal argument.  If no argument is specified the entire page is
justified.  If  there is  an  attachment the  ATTACH buffer  is  justified
rather than the page.   When the range is  limited by a positive  argument
the justification starts with the arrow line while for a negative argument
the justification will be  for the specified number  of lines before  (but
not including) the arrow line.

    αXJFILL or αXJUST, preceded by a  0 argument, causes ETV to report  on
the current status of the switch  setting (se below) and of the  resulting
margins without any overt action other than to record any typed changes to
these values (these changes are recorded before the report is made).

    !!  Type α0αXJF<cr> to verify this, and then read the next paragraph.

    The last  4 numbers  that are  reported, refer,  respectively, to  the
crown line  indent, the  non-crown-line  indent, the  rightmost  character
position and  to the  number of  blank lines  that are  to appear  between
paragraphs.  When a negative number is shown, it means,  by
convention, that there is  to be the same  distribution of blank lines  in
the output text as in the input  text.  By following your commands with  a
string of  numbers, separated  by commas,  as shown,  you can  change  the
default values to anything that you desire.  These values are sticky, that
is, once changed they stay changed (until changed again) and they need not
be retyped with subsequent commands.  There are no limits as to the values
that may be assigned to the left indents or to the right margin value,  so
it is possible to create lines that cannot be edited with the LINE-EDITOR.

	The full explanation of these commands is beyond the scope of this
TEACH manual.  See α?  for details.

EXAMPLES for beginners and for casual users.

    As a beginner  you might like  to use these  commands without  getting
into all of  the gory  details.

*** If you are willing to use the initial default conditions.

    Type α6αXJF<cr> to effect the  left-justification of 6 lines  starting
with the  arrow  line or  αXju<cr>  if you  want  the entire  page  to  be
justified and padded to preserve the right margin as well.

	Under these conditions E uses the presence of a blank line  or
    of a line  that is indented  by 2 or  more character positions  to
    signal the start of a new  paragraph and it expects all  non-crown
    lines to be indented by less  than 2 character positions.  In  the
    output text,  crown  lines (first  lines  of all  paragraph)  will
    follow the same number of blank lines as were in the original taxt
    and they will  be indented  by 4  character positions.   Non-crown
    lines will all start at the left margin and the maximum number  of
    characters on a line will be 74.

*** If you want the new crown indents to be 8 (actually a TAB) and are
    willing to use the other default values.

    Type α9α9αXJU 8<cr> only.

*** If you prefer to have new paragraphs signalled by blank lines only and
    want the indentations in the original text to be completely ignored.

    Type α6αXJF A<cr> or α7αXJU A<cr> as the case may be.

	This sets a specisl A (for  Assigned) switch which tells E  to
    use some assigned  input indent conditions  for which the  default
    values are initially set at 0,0  which causes E to behave as  just
    noted.

There are several other commands that you might like to use.

αXSJF<cr>

    The command αXSJF<cr> causes all  sentences in the designated text  to
be separated into individual sentences.   This makes it easy to  rearrange
sentences within a document.   Caution, this command obliterates all crown
indents so it is well to have  blank lines between paragraphs in order  to
preserve paragraph  breaks.   Having  rearanged  the  sentences  to  one's
satisfaction, they  can then  be put  back togather  with a  αXJF or  αXJU
command.  The decision as to what is a sentence is made on the basis of  a
sentence-ending punctuation mark that is followed by either 2 spaces or  a
carriage return.  Some funny things will happen if such marks are used  in
the text, in mathematical equations or the like, so be careful.

    !!  Try this command  on this page,  but only if  you are prepared  to
undo its effect with a αXCANCEL command.

αXJGET<cr>

    The αXJGET<cr>  command  allows one  to  have E  examine  a  specified
portion of text to determine the indents and right margin that were  used.
This is of use, primarily,  with text that is  quite abnormal as to  these
properties, for example,  if the  lines are  too long  to be  seen on  the
screen or  even  too  long to  edited  (since  there is  a  limit  of  126
characters that applies to the LINE-EDITOR  and there is no limit for  the
justification commands).

    !!  You  might like  to experiment  with this  command since  it  does
nothing to your  text.  You will observe  that you  get different  answers
depending upon  the location  of the  arrow  and upon  the extent  of  the
designated text.

    There is a complete set of additional commands, similar to those  that
have been described, that are designed for use with tabular material.   As
an example, the tabular lists of commands with there explanations that you
have seen in TEACH  (the next page  is a good  example) were justified  by
using these commands.  See α? for details.

Margin fixing commands. αXALIGN<cr> αXCENTER<cr> αXINDENT<cr> α→ and α←
		(3 EXTEND commands and 2 that are not.)

    These commands are related to the justification commands in that  they
adjust margins but the text is not shuffled between lines.  These commands
take a  prefixed argument  specifying  the number  lines  that are  to  be
processed, but the default is one line, rather than the entire page as  it
was for the justification commands.  Negative, zero and positive  prefixed
arguments may be used.

Some examples follow:

αXALIGN<cr>     Align at the arrow line with the left margin indent set at
		at the default value, which initially is 0.

α8αXALIGN 4<cr>  Align 8 lines starting  at the arrow  line with the  left
		margin indent set  at 4 and  change the default  alignment
		value to 4.

αXCENTER<cr>    Center the arrow line between  the margins that have  been
		set for or by a previously exicuted justification command.

αXINDENT<cr>    Indent the arrow line  by the default  value which is  set
		initially at 4, that  is move the text  to the right by  4
		character positions.  If  the resulting total  indentation
		is 8  or more  spaces, TABs  will be  used to  the  extent
		possible.

α5αXINDENT -3<cr>  Change the  default indent  value to  -3 and  indent  5
		lines by this  amount, that is,  move the 5  lines to  the
		left by 3 character positions  (but do not shift any  line
		far enough to lose  any non-space characters).  Note  that
		the relative  indentations  of  the  lines  moved  is  not
		changed by an indent command as long as an attempt is  not
		made to shift any line too far to the left.

    The following commands are faster to  use than is the XINDENT command.
The (absolute) default value associated  with the XINDENT command is  used
by these (non-EXTEND) commands.   Less confusion will  result if you  keep
the default INDENT value as a positive number but this is not a requirment
as the following commands take the absolute value in any case.

α4α→            Shift 4  lines  to  the right  using  the  absolute  value
		associated with the XINDENT command.

α6α←            Move 6 lines to the left by the absolute value  associated
		with the  XINDENT command  (if  this is  possible  without
		losing any non-space  characters, otherwise stop  shifting
		each line when this limit is reached).
Some other EXTEND commands.

    You have,  by now,  encountered several  EXTEND commands.   There  are
several other EXTEND commands that you  will want to know about very  soon
but you will have to refer to  α? for full details.  For completeness,  we
will review the way that these commands  are written and list some of  the
more useful EXTEND commands.

    Certain commands are potentially too dangerous to be safely evoked  by
a single character. There are also more commands than can be obtained with
single characters.  These contingencies are handled by the EXTEND  command
specified as follows:

αX              Accept the string that follows  as a command. This  string
		may be abbreviated as long  as no ambiguity results.   The
		string is  typed  without  control keys  and  it  must  be
		terminated by a space if parameters are required, or by  a
		<cr> or other deliniter.

The more useful EXTEND commands are:

αXBREAK<cr>     Break a  long line  into  segments as  defined by  a  line
		length that may be  changed but that  is initially set  to
		80.  This command will accept lines of any length and does
		not require  them to  contain cr's.   See α?  page 12  for
		details.  Note  especially that  this command  breaks  the
		line quite  arbitrarily  and  not necessarily  at  a  word
		boundary.


αXCANCEL<cr>    Do not write out the current page but instead reread it in
		from the disk.

αXCLOSE<cr>     Close the file.  This allows others to read it if you  had
		modified it,  without  interfering with  your  ability  to
		still read it.  You may, however, be prevented from making
		further modifications should  someone else  start to  read
		the file.

αXDEFINE<cr>    Define a  macro-command which  can  then be  executed  any
		desired number of times by  a simple (α#αY) command.   See
		page 25 in α? for detailes.

αXDELETE<cr>    See page 10 for details.

αXDRAW<cr>      Redraw the complete screen.  Used when unwanted marks show
		on the screen  from whatever cause.   (This does the  same
		thing as αV).

αXFIND<cr>      see page 14 for details on FIND.

αXGO<cr>        Exit from E and repeat the last SNAIL command.

αXJOIN<cr>      Join as many  lines as  specified by  an initial  argument
		into one line,  regardless of its  resulting length.   The
		default argument is 2.  See α? page 12 for details.

αXJUST<cr>      See page 16 for details.

αXLINCNT<cr>    Report the number of characters  in the current line,  and
		the number of characters on the entire page.

αXMAIL<cr>      Send mail to the designated person. See α? for details.

αXMARK<cr>      See page 10 for details.

αXPAREN<cr>     A  Parenthesis  matching  command.  See  α?  page  22  for
		details.

αXPROTECT<cr>   Display or  change  the  PROTECTION  for  the  file  being
		viewed.  See α? page 19 for details.

αXQUIT<cr>      Quit (exit) E WITHOUT updating the disk record.

αXREADONLY<cr>  Inhibit any  commands  that  will cause  the  file  to  be
		written out  and  ask  for confirmation  of  desired  mode
		before proceeding.

αXREADWRITE<cr>  Disable the write-inhibit.

αXREMIND<cr>    Send reminder.  See α? for details.

αXSEND<cr>      Send message.  See α? for details.

αXRSYS PRGM<cr>  Exit and runs SYS:PRGM

αXRUN PRGM<cr>  Exit and runs DSK:PRGM

αXSPOOL<cr>     Spool the  page that  is being  displayed, or  the  attach
		buffer only if something is attached.

αXXSPOOL<cr>    XGP spool the page that is being displayed, or the  attach
		buffer if something is attached.

System commands to evoke E.

   Basic commands

	CETV <string><cr>
		Create a new file with the name and extension as
 		  specified by string.
		  The file will contain a directory page and one
		  blank page.
	ETV <existing file name><cr>
		Enter E with the specified file. If the file has
		  but one text page, display this, otherwise
		  display the directory page.
	ETV	Reenter E with the most recently edited file and
		  display the most recently opened page (subject
		  to certain restrictions as described in the
		  Monitor Manual).	
	ETV <string1>←<string2><cr>
		Copy file named string2 into a new file named
		  string1, start E and display the text as above.
		  If the string2 file has a valid directory this
		  is executed relatively rapidly, if not a new
		  directory will have to be created. (See the note
		  below with respect to the /N switch).

	R E;<string1>←<string2><cr>
		Similar to ETV  <string1>←<string2> except for the
		  way it handles the TMPCOR files. (See the Monitor
		  Manual for this and other RPG features).

   Switches, when used, are strings beginning with a slash which are
placed immediately after the file name that they are to modify.

	/E	Open the file with the arrow pointing to the asterisks
		  on the last page of the file (in the position to add text).
	/6E	Open the file with the arrow pointing to the asterisks
		  at the end of page 6.
	/F	Repage the file as it is being read in, limiting the number
		  of lines on a page to a maximum of 33 (1 windowful).
		  Existing page marks are respected.
	/62F	Repage the file as before but with the maximum number of
		  lines set at 62 instead of the default value of 33.
	/5L	Open the file with the arrow at line 5.
		  This is not very useful by itself but see below.
	/N	No Directory. The inexperienced user is advised to avoid
		  using this switch as there are some commands that cause
		  trouble when used with no-directory files.
	/2P	Open the file displaying page 2.
	/R	Open the file in the read only mode. This is useful
 		  if one wants to examine a file without any danger
		  of inadvertently modifying it.
		    example: ET TEACH[UP,DOC]/R<cr>

   When two or more switches are to be used they may be put together
inside parenthesis.

		example: ET MYFILE(R4P5L)<cr>

Using E from a non-display (TTY).

It is possible to use E from a non-display terminal.  Of course,
some of the advantages of E over, say, SOS are lost but one may not
want to go to the trouble of having to switch editors in mid-stream.
As partial compensation for the lack of display features, E provides
the non-display user with line numbers.  See the MONITOR COMMAND
MANUAL sections 3 and 4.7 for other information of interest to
non-display users.

No special action is required of the non-display user to tell E that
a non-display is being used.  E figures that out automatically.

Initially, each character typed to E from a non-display is assumed
to be a command; that is, the character is read by E as if it had
been typed with the EDIT key depressed.  One can, however, enter
LINE-INSERT mode by typing the character I and then everything
thereafter is accepted as text to be inserted.  To exit from
LINE-INSERT mode and return to COMMAND mode, type ALTMODE (ESC on
most terminals.)  Of course, when the non-display user
types the command character X, E waits for an extended command
name to be typed followed by a carriage return.

The LINE EDITOR is not available on non-displays, so it is not
possible to arbitrarily edit an existing line on a non-display.
However, it is possible to use the substitution commands (using the
linefeed delimiter at the end of the search string) to change part
of one or more lines.  Also, the ⊗XBREAK and ⊗XJOIN commands can be
used to separate out part of a line that you want to change.

Most of the commands we have seen may be typed with either just EDIT
held down, or with EDIT [NUL] EDIT <something>, and the same thing
will happen in both cases.  A few commands do different things, though,
in these two cases.
The following two extended commands allow the user on a non-display
to execute commands that require precisely just EDIT or
precisely EDIT [NUL] EDIT <something>.  These are prefix commands
which affect the following command.

 ⊗XMETACONTROL  This causes the next character to be interpreted
		as if the user had typed EDIT [NUL] EDIT .
		This is useful on a non-display when you want to
		use a command that requires both META and CONTROL.

 ⊗XCONTROL      This causes the next character to be interpreted
		as if it had the EDIT bit but NOT the META bit.

If neither of the above two commands is used on a non-display, a
command that makes a distinction between CONTROL and META-CONTROL
will execute the CONTROL version; and a command that distinguishes
between any bits and none at all will execute the no-bit version.

The control key on a non-display is not at all the same as the
Stanford-keyboard CONTROL key referenced in most of this manual.

Some characters cannot be typed from a non-display to a user program
(like E) because their use has been preempted by the system.  Thus
it is impossible to input those characters as text in E.  However,
where such characters are used as commands by E, there is an
alternative extended command that does exactly the same thing as the
single-character command which the system intercepts.  The table
below lists these extended commands and the single-character
commands they represent.  For details on what these extended
commands do, see the writeups in this manual for the corresponding
single-character commands.

Extended	Equivalent Single-Character Command
Command

⊗XEXIST		⊗∃ (there-exists sign, octal 025, ↑U (intercepted by system))
		   Types out file-switch list.
⊗XPARTIAL	⊗∂ (partial-sign, octal 017, ↑O (intercepted by system))
		   Carries out next command on current message.
⊗XMSG		⊗∂ (partial-sign, octal 017, ↑O (intercepted by system))
		   Carries out next command on current message.
⊗XLAMBDA	⊗λ (lambda, octal 010, ↑H) Switches files.
⊗XLOOKUP	⊗λ (lambda, octal 010, ↑H) Switches files.
⊗XEPSILON	⊗ε (epsilon, octal 006, ↑F) Switches files.
⊗XENTER		⊗ε (epsilon, octal 006, ↑F) Switches files.

Stanford characters that cannot be sent as text or as E control
characters are:

Octal	Usual		Prints	Typed	Preempted as a system
	name		out as	in as	  command used for

002	alpha		α	<ctr>B	type-out pause (toggles)
003	beta		β	<ctr>C	monitor call
017	delta		∂	<ctr>O	flush type-out (toggles)
025	there exists	∃	<ctr>U  clear input line
032	tilde		~	<ctr>Z  end of file
033	not equal	≠	<ctr>[  altmode


Character equivalences, Stanford AI Lab character set:

Code	Name		Prints	Typed	Preempted
octal			out as	in as	for

000	null
001	down arrow	↓	<ctr>A
002	alpha		α	<ctr>B	type-out pause (toggles)
003	beta		β	<ctr>C	monitor call
004	logical and	∧	<ctr>D
005	logical not	¬	<ctr>E
006	epsilon		ε	<ctr>F
007	pi		π	<ctr>G

010	lambda		λ	<ctr>H
011	TAB
012	LF
013	VT
014	FF
015	CR
016	infinity	∞	<ctr>N
017	delta		∂	<ctr>O	flush type-out (toggles)

020	containment	⊂	<ctr>P
021	implication	⊃	<ctr>Q
022	intersection	∩	<ctr>R
023	union		∪	<ctr>S
024	for all		∀	<ctr>T
025	there exists	∃	<ctr>U  clear input line
026	circle times	⊗	<ctr>V
027	double-arrow	↔	<ctr>W

030	underbar	_	<ctr>X
031	right-arrow	→	<ctr>Y
032	tilde		~	<ctr>Z  end of file
033	not equal	≠	<ctr>[  altmode
034	less or equal	≤	<ctr>\
035	greater or eq	≥	<ctr>]
036	equivalence	≡	<ctr>↑
037	logical or	∨	<ctr>←

040	SP
041	exclamation	!	!
042	double quote	"	"
043	number sign	#	#
044	dollar sign	$	$
045	percent		%	%
046	ampersand	&	&
047	close s. quote	'	'

050	left paren	(	(
051	right paren	)	)
052	asterisk	*	*
053	plus		+	+
054	comma		,	,
055	minus		-	-
056	point		.	.
057	slash		/	/

060	digits		0	0
...
071			9	9
072	colon		:	:
073	semicolon	;	;
074	left broket	<	<
075	equal		=	=
076	right broket	>	>
077	question mark	?	?

100	at sign		@	@
101	upper-case	A	A
...
132			Z	Z
133	left bracket	[	[
134	back slash	\	\
135	right bracket	]	]
136	up¬arrow	↑	↑
137	left-arrow	←	←

140	open s. quote	`	`
141	lower case 	a	a
...
172			z	z
173	left brace	{	{
174	vertical bar	|	|
175	ALT			ALT or ESC
176	right brace	}	}
177	BS or DEL		BS or DEL
Summary.

Remember that you still have not been told all there is to know about E.
It would be a good idea for you to spend some time looking at α? so that
you will know something about the many other commands that are available.

Credits:

    Dan Swinehart wrote TV,  the original version  of the display  editor,
and created the  original version of  TEACH.  Fred Wright  wrote the  FAIL
version of TV  (called E).  This  has been extended  and modified by  many
different people, with major contributions by Arthur Samuel, Brian Harvey,
and Martin Frost.

    Suggestions as to ways to improve this version of TEACH should be sent
to ALS.

    Disclaimer.

    An attempt has been made to present a coordinated view of E.  To  this
end some simplications have  been made. The  experienced user may  develop
techniques that  are not  described in  this manual.  Any outright  errors
should, however, be called to our attention.